clojure.test
লাইব্রেরি ব্যবহার করে Unit TestingClojure তে unit testing এর জন্য clojure.test
লাইব্রেরি ব্যবহৃত হয়, যা Clojure এর ইন-বিল্ট টেস্টিং ফ্রেমওয়ার্ক। এটি আপনি সহজেই আপনার কোডের বিভিন্ন অংশের জন্য টেস্ট তৈরি করতে এবং পরীক্ষণ করতে পারবেন। clojure.test
লাইব্রেরি, Java এর JUnit এর মতো কাজ করে এবং এটি আপনাকে ফাংশনালিটি পরীক্ষা করার জন্য বিভিন্ন টেস্ট কেস তৈরি করতে সহায়ক।
clojure.test
এর মূল ফিচারসমূহ:deftest
: একটি টেস্ট ফাংশন ডিফাইন করার জন্য ব্যবহৃত হয়।is
: টেস্ট কন্ডিশনের যাচাই করার জন্য ব্যবহৃত হয়।testing
: টেস্টের অধীনে একটি টেস্ট গ্রুপ বা টেস্ট কেস তৈরি করতে ব্যবহৃত হয়।clojure.test
লাইব্রেরি ইমপোর্ট করাclojure.test
লাইব্রেরি ব্যবহারের জন্য এটি প্রথমে ইমপোর্ট করতে হয়:
(require '[clojure.test :refer :all])
এখানে একটি সাধারণ উদাহরণ দেখা যাচ্ছে যেখানে একটি ফাংশন টেস্ট করা হচ্ছে।
add
ফাংশন টেস্ট করা; প্রথমে একটি ফাংশন তৈরি করা
(defn add [a b]
(+ a b))
; এখন এই ফাংশনের জন্য unit test তৈরি করা
(deftest test-add
(testing "Testing the add function"
(is (= (add 2 3) 5)) ; এখানে add 2 এবং 3 যোগ করে 5 হওয়া উচিত
(is (= (add -1 1) 0)) ; এখানে -1 এবং 1 যোগ করে 0 হওয়া উচিত
(is (= (add 0 0) 0)))) ; এখানে 0 এবং 0 যোগ করে 0 হওয়া উচিত
(run-tests) ; এটি সমস্ত টেস্ট চালাবে
deftest
: test-add
নামের একটি টেস্ট তৈরি করা হয়েছে যা add
ফাংশনটির কার্যকারিতা পরীক্ষা করবে।testing
: এটি টেস্টের ব্যাখ্যা প্রদান করে, অর্থাৎ "Testing the add function"।is
: এটি একটি assertion যা একটি শর্ত পরীক্ষা করে। যদি শর্তটি সঠিক হয় তবে টেস্ট পাস করবে, অন্যথায় ফেইল করবে।run-tests
: এটি সমস্ত টেস্ট চালায় এবং ফলাফল আউটপুট হিসেবে দেখায়।আপনি একাধিক টেস্ট কেস এবং ফাংশনালিটি পরীক্ষা করতে পারেন clojure.test
ব্যবহার করে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি multiply
ফাংশন টেস্ট করা হয়েছে।
multiply
ফাংশন টেস্ট করা(defn multiply [a b]
(* a b))
(deftest test-multiply
(testing "Testing the multiply function"
(is (= (multiply 2 3) 6)) ; 2 * 3 = 6
(is (= (multiply -1 5) -5)) ; -1 * 5 = -5
(is (= (multiply 0 10) 0)) ; 0 * 10 = 0
(is (= (multiply 4 -2) -8)))) ; 4 * -2 = -8
(run-tests) ; এটি সমস্ত টেস্ট চালাবে
এখানে, multiply
ফাংশনের বিভিন্ন ইনপুট দিয়ে টেস্ট করা হয়েছে এবং সঠিক আউটপুট যাচাই করা হয়েছে।
আপনি যদি চান, তবে টেস্ট চালানোর পরে একটি কাস্টম রিপোর্ট দেখতে পারেন:
(run-tests 'your.namespace) ; নির্দিষ্ট নেমস্পেসের টেস্ট চালাবে
এছাড়াও, আপনি একটি টেস্টের মধ্যে ফলাফল চেক করার জন্য টেস্ট ফেইল হওয়ার পরে কাস্টম মেসেজও ব্যবহার করতে পারেন:
(deftest test-add
(testing "Testing the add function"
(is (= (add 2 3) 5) "Add function failed with inputs 2 and 3")
(is (= (add -1 1) 0) "Add function failed with inputs -1 and 1")
(is (= (add 0 0) 0) "Add function failed with inputs 0 and 0")))
এখানে, আপনি যদি কোনো টেস্ট ফেইল করেন, তবে একটি কাস্টম মেসেজ আউটপুট হবে।
use-fixtures
এর মাধ্যমে টেস্ট ফিক্সচার ব্যবহৃত করাuse-fixtures
ব্যবহার করে আপনি টেস্টের আগে বা পরে কিছু প্রি-কন্ডিশন বা পোস্ট-কন্ডিশন সেট করতে পারেন। এটি যখন আপনি কিছু রিসোর্স পরিচালনা করতে চান (যেমন, ডেটাবেস কানেকশন খোলার আগে বা ফাইলের রিড/রাইট করার আগে) তখন ব্যবহার করা হয়।
(use-fixtures :once setup-teardown)
(defn setup-teardown [f]
(println "Setting up resources...")
(f) ; টেস্ট ফাংশন চালানো হবে
(println "Tearing down resources..."))
(deftest test-addition
(is (= (add 1 1) 2)))
(run-tests)
এখানে, setup-teardown
ফিক্সচারটি টেস্টের আগে এবং পরে রান করবে।
ফাংশন বা কিওয়ার্ড | ব্যাখ্যা |
---|---|
deftest | টেস্ট ফাংশন ডিফাইন করতে ব্যবহৃত হয়। |
testing | টেস্টের ব্যাখ্যা প্রদান করে। |
is | একটি শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়। |
run-tests | সমস্ত টেস্ট চালানোর জন্য ব্যবহৃত হয়। |
use-fixtures | টেস্ট ফিক্সচার ব্যবহারের জন্য ব্যবহৃত হয়। |
clojure.test
লাইব্রেরি ব্যবহার করে Java এর মতো Clojure তেও ইউনিট টেস্টিং করা সম্ভব। এটি কোডের কার্যকারিতা নিশ্চিত করতে সহায়ক এবং আপনার প্রোগ্রামের আস্থাশীলতা বৃদ্ধি করে।
common.read_more